Python3 字符串、数字、二进制bytes互相转换

您所在的位置:网站首页 python 二进制字符串转16进制 Python3 字符串、数字、二进制bytes互相转换

Python3 字符串、数字、二进制bytes互相转换

2024-07-16 00:54| 来源: 网络整理| 查看: 265

  数字     整数 -1 0 1     浮点 -0.1 0.0 1.0     二进制 0b11        结果 3     八进制 0o77        结果 63     16进制 0xFF        结果 255   字符串     纯字符串 'str' "str" '''str''' """str"""     字符串数字(二进制 0b) '0b0'     转成字符 str(0b10) 结果 '2'     ## 可以前置补零str(0b00000010)     字符串数字(八进制 0o) '0o0'     转换字符 str(0o77) 结果 '63'    ## 可以前置补零str(0o0077)     字符串数字(十进制)    '0'       转换字符 str(100)  结果 '100'   ## 不能前置补零     字符串数字(16进制 0x) '0x0'     转换字符 str(0xFF) 结果 '255'   ## 可以前置补零str(0x00FF) 二进制     二进制字节表示 b''    # ASCII 字符 0-9 a-z A-Z 等 ================================================================================================================================ ## 数字 转 字符串 ##  255(10进制)  0b11(2进制)  0xFF(16进制) ## (10进制数) >>> bin(255)            '0b11111111' >>> oct(255)            '0o377' >>> hex(255)            '0xff' ## (2进制数) >>> bin(0b11)           '0b11' >>> hex(0xFF)           '0xff' ## (16进制数) >>> bin(0xFF)           '0b11111111' >>> hex(0xFF)           '0xff' ================================================================================================================================ ## 字符串 转 数字(十进制数)##  '123'(以10进制解析)  '10'(以2进制解析)  'a'(以16进制解析) ## (10进制表示的字符串) >>> int('123')          123         ## 十进制字符转十进制数字 >>> int('123',10)       123         ## 默认是十进制 ## (二进制表示的字符串) >>> int('100',2)        4           ## 二进制的 100 等于 十进制的 4(可以不加前置 0b) >>> int('0b100',2)      4           ## 二进制的 100 等于 十进制的 4 >>> int('0b0100',2)     4           ## 可以前置补零 ## (16进制表示的字符串) >>> int('a',16)         10          ## 16进制的 a 等于 十进制的 10(可以不加前置 0x) >>> int('0xa',16)       10          ## 16进制的 a 等于 十进制的 10 >>> int('0x0a',16)      10          ## 16进制的 a 等于 十进制的 10(可以前置补零) >>> int('10',16)        16          ## 16进制的10 等于 十进制的 16(可以不加前置 0x) >>> int('0x10',16)      16          ## 16进制的10 等于 十进制的 16 >>> int('0x0010',16)    16          ## 16进制的10 等于 十进制的 16(可以前置补零) ================================================================================================================================ ## 数字 转 数字 ##  0b11  0xFF ## 十进制 转 十进制 >>> int(255)            255         # 无意义操作 >>> 255                 255         # 无意义操作 ## 二进制 转 十进制 >>> int(0b11)           3           # 可加前置零 int(0b0011) >>> 0b11111111          255         # 等价 ## 16进制 转 十进制 >>> int(0xFF)           255 >>> 0xff                255         # 等价 且 忽略大小写 >>> 0xFF                255         # 等价 且 忽略大小写 ## 十进制 转 二进制(使用 数字 转 字节码/字符) 255 等价 0b11111111 ## 十进制 转 16进制(使用 数字 转 字节码/字符) 255 等价 0xff ================================================================================================================================ ## 字符串 转 字节码 ## >>> bytes('abc','utf-8')              b'abc' >>> bytes('编程','utf-8')             b'\xe7\xbc\x96\xe7\xa8\x8b' >>> bytes('Python3编程','utf-8')      b'Python3\xe7\xbc\x96\xe7\xa8\x8b' >>> 'Python3编程'.encode('UTF-8')     b'Python3\xe7\xbc\x96\xe7\xa8\x8b' >>> S = 'Python3编程'                 'Python3编程' >>> B = bytes(S,'utf-8')              b'Python3\xe7\xbc\x96\xe7\xa8\x8b' >>> FMT = str(len(B)) + 's'           '13s' >>> struct.pack(FMT,B)                b'Python3\xe7\xbc\x96\xe7\xa8\x8b' ## 以16进制数字写的字符串,直接转成一样的字节码(2个16进制字符才是一个字节) >>> bytes.fromhex('01')               b'\x01'                       # 单字节 >>> bytes.fromhex('0001')             b'\x00\x01'                   # 双字节 >>> bytes.fromhex('aabbccddeeff')     b'\xaa\xbb\xcc\xdd\xee\xff'   # 多字节 ================================================================================================================================ ## 字节码 转 字符串 ##  取出16进制表示的内容 >>> b'abc'.decode('UTF-8')                                  'abc' >>> b'Python3\xe7\xbc\x96\xe7\xa8\x8b'.decode('UTF-8')      'Python3编程' >>> b'\xaa\xbb\xcc\xdd\xee\xff'.hex()                       'aabbccddeeff' >>> b'0'.hex()                                              '30'    ## 字符0在ASCII码上的数字(数字是16进制表示)== 48(十进制) >>> b'1'.hex()                                              '31' >>> b'z'.hex()                                              '7a' ================================================================================================================================ ## 数字 转 字节码(是二进制,用16进制显示) ## # 10进制数 转 字节码 import struct >>> struct.pack('B',0)          b'\x00' >>> struct.pack('B',1)          b'\x01' >>> struct.pack('B',101)        b'e'                    ## 101 对应 16进制的 0x65(此处返回值是显示为当前整数 101 对应的 ASCII字符 e) >>> struct.pack('B',255)        b'\xff'                 # 无符号最大单字符可以表示的数字 >>> struct.pack('>i',255)       b'\x00\x00\x00\xff'     # 4字节大端表示的数字 >>> struct.pack('i',0b111)         b'\x00\x00\x00\x07'     # 0b111 等于 7(10进制) >>> struct.pack('>i',0b1111)        b'\x00\x00\x00\x0f'     # 0b1111 等于 15(10进制) >>> struct.pack('>i',0b11111)       b'\x00\x00\x00\x1f'     # 0b11111 等于 31(10进制) # 16进制数 转 字节码 import struct >>> struct.pack('B',0xff)           b'\xff' >>> struct.pack('>i',0xfff)         b'\x00\x00\x0f\xff' ================================================================================================================================ ## 字节码 转 数字 ## import struct          16进制表现                10进制等值 >>> struct.unpack('B', b'\xff')                      (255,)          # 单字节 >>> struct.unpack('>i', b'\x00\x00\x00\xff')         (255,)          # 4字节,大端模式 >>> struct.unpack('



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3